package cn.iocoder.yudao.module.trade.controller.admin.depositorder.vo;

import cn.iocoder.yudao.module.trade.dal.dataobject.depositproductrelation.DepositProductRelationDO;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.*;
import java.time.LocalDateTime;
import java.util.List;

import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.TIME_ZONE_DEFAULT;

@Schema(description = "管理后台 - 押金信息新增/修改 Request VO")
@Data
public class DepositOrderSaveReqVO {

    @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "27840")
    private Long id;

    @Schema(description = "对外展示", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "对外展示不能为空")
    private String code;

    @Schema(description = "燃气户id", example = "17855")
    private Long crmMemberUserId;

    @Schema(description = "部门id", example = "14743")
    private Long deptId;

    @Schema(description = "部门名", example = "李四")
    private String deptName;

    @Schema(description = "支付方式0微信1支付宝2银行卡")
    private Integer payment;

    @Schema(description = "经办人id可选多个 逗号分割", example = "29342")
    private String operatorId;

    @Schema(description = "经办人名称", example = "29342")
    private String operatorName;


    @Schema(description = "总押金")
    private Integer depositAmount;

    @Schema(description = "租金价格", example = "8306")
    private Integer rentPrice;

    @Schema(description = "应收押金")
    private Integer toAmount;

    @Schema(description = "实收押金")
    private Integer inAmount;

    @Schema(description = "押金余额")
    private Integer balance;

    @Schema(description = "支付状态", example = "2")
    private Integer payStatus;

    @Schema(description = "状态", example = "2")
    private Integer status;

    @Schema(description = "来源")
    private Integer source;

    @Schema(description = "工单id", example = "25853")
    private Long wipId;

    @Schema(description = "工单编码")
    private String wipCode;

    @Schema(description = "起租时间")
    private LocalDateTime startTime;

    @Schema(description = "经办日期")
    private LocalDateTime endTime;

    @Schema(description = "单据id ", example = "3131")
    private Long billId;

    @Schema(description = "回执")
    private Integer receiptLabel;

    @Schema(description = "回执状态", example = "1")
    private Integer receiptStatus;

    @Schema(description = "回执时间")
    private LocalDateTime receiptTime;

    @Schema(description = "回执确认人", example = "李四")
    private String receiptName;

    @Schema(description = "更新人")
    private String updater;
    @Schema(description = "钢瓶类型集合")
    private List<DepositProductRelationDO> relationDOList;

    @Schema(description = "起租日期状态1今天2昨天3自定义")
    private Integer startDayType;
    @Schema(description = "经办日期状态1今天2昨天3自定义")
    private Integer endDayType;

    @Schema(description = "图片地址")
    private String imageLink;

    private String depositImage;

    @Schema(description = "备注")
    private String remark;


}